Binomial pulse-position modulation (BPPM) using sparse recovery for free-space optical fading/turbulent channels

ABSTRACT

Concepts, systems and methods are provided herein for generating encoded binomial pulse position modulation (BPPM) signals having random, sparse sets of multiple pulses per channel usage interval for use in Free-Space Optical (FSO) communications. A data symbol can be modulated into a set of BPPM pulses for transmission over a FSO channel and a signal can be generated having the set of BPPM pulses over a predetermined time interval. The BPPM pulses can be encoded into one or more codewords based on a number of error correction bits to form a coded signal using the one or more codewords to represent the signal having the set of pulses for transmission over the free-space optical channel. The coded signal can be filtered and sampled to generate a set of samples. Position and amplitude data for the samples can be determined to reconstruct and decode the coded signal.

BACKGROUND

As is known in the art, Pulse-Position Modulation (PPM) can use onepulse per channel use to represent a symbol (e.g., a set of bits)located at different time epochs during a time interval (e.g., M-aryPPM). The number of pulses per channel usage can be defined by the timeinterval divided by a pulse width. To increase quantization for PPMrequires narrower pulses per channel usage. Alternative schemes used forultra-wideband (UWB) such as differential PPM (DPPM) or combinatorialPPM (CPPM) can improve spectral efficiency and capacity withdecoding-rate/complexity still dictated by channel bandwidth driver bythe PPM pulse width. Furthermore, for schemes such as (CPPM) there is noinherent coding gain against fading/turbulence.

SUMMARY

Concepts, systems and methods are provided herein for generating encodedbinomial pulse position modulation (BPPM) signals having random, sparsesets of multiple pulses per channel usage interval for use in Free-SpaceOptical (FSO) communications. Channel usage as used herein refers to anamount of bandwidth that a signal needs for transmission over arespective channel. For example, in some embodiments, the bandwidth canbe one-half the number of dimensions of signal space required persecond. Using BPPM pulses, a capacity of the BPPM signal (i.e., symbolquantization) can be increased based at least upon a combination of therandom selection of pulses and symbols. The BPPM pulses can be combinedwith various encoding techniques (e.g., Reed-Solomon (R-S)) to providefor coding gain against fading and/or turbulence typically experiencedin FSO communications by exploiting a sparseness of the encoded BPPMsignal. For example, using non-radix 2 Galois field (GF(P)), a sparseset of BPPM codeword symbols can be generated having a small number ofpulses relative to a total number of possible pulse positions availableper channel usage interval. The sparse set of BPPM codeword symbols canbe transmitted over an FSO channel at a fixed-rate or finite rate ofinnovations (FRI) for each channel usage interval. The FRI can beproportional to a length of the coded BPPM signal. In some embodiments,the total number of message symbols possible corresponds to the numberof encoded BPPM symbols (K) (i.e., P^(K)).

Using FRI, a demodulator of a receiver may perform sparse reconstructionof the transmitted coded BPPM signal to recover the sparse BPPM symbolsat a reduced sampling rate as compared with conventional methods. In anembodiment, the sampling rate may be reduced because the decodingsampling rate corresponds to the number of BPPM symbols per channelusage interval and not the width of each PPM symbol as in conventionalmethods. In some embodiments, compressive sensing may be performed torecover the sparse BPPM symbols to exploit the sparse number of pulsesper channel usage interval.

The sparse reconstruction may include using a low pass filter togenerate samples for recovery at a lower sampling rate than conventionalmethods. For example, the signal to noise ratio (SNR) for detection maybe determined by a noise bandwidth of the low pass filter which can be afraction of the receiver bandwidth for the pulses.

An OAM transceiver system may be provided for generating the encodedBPPM signals having random, sparse sets of multiple pulses per channelusage interval. The OAM transceiver system can be configured forfree-space optical communication (FSO). In an embodiment, FSOcommunication refers to an optical communication technology that useslight propagating in free space to wirelessly transmit data. In someembodiments, the data may be transmitted in the form of a light beam orlaser beam over a FSO channel that generally comprises free-space (e.g.,air, outer space, vacuum, etc.). The OAM transceiver system may beconfigured to perform orbital angular momentum (OAM) multiplexing tomultiplex signals onto electromagnetic waves using the orbital angularmomentum of the electromagnetic waves to distinguish between thedifferent orthogonal signals.

In a first aspect, a method for generating a coded signal is provided.The method comprises encoding a data symbol into a set of pulses fortransmission over a free-space optical channel, the data symbolcorresponding to one or more bits, generating a signal having the set ofpulses over a predetermined time interval, generating one or morecodewords based on a number of error correction bits and the signalhaving the set of pulses and forming a coded signal using the one ormore codewords to represent the signal having the set of pulses fortransmission over the free-space optical channel.

In some embodiments, the data symbol includes a binomial data symbolcomprising the one or more bits. The set of pulses may include binomialpulse position modulation (BPPM) pulses. The set of pulses may berandomly generated. In some embodiments, the set of pulses can besparsely generated with respect to a duration of the predetermined timeinterval.

The predetermined number of error correction bits can be determinedbased on a number of data bits in the signal and an error correctionthreshold.

A sampling kernel can be applied to the coded signal to generate afiltered signal and sampling the filtered signal to generate samples ofthe filtered signal. Position data and amplitude data can be determinedfor each of the samples of the filtered signal. The coded signal can bereconstructed using the position and amplitude data for each of thesamples. The coded signal can be decoded at a sample rate equal to anumber of pulses per predetermined time interval of the coded signal.

In another aspect, a method for reconstructing a signal is provided. Themethod comprises applying a sampling kernel to a coded signal receivedfrom a free-space optical channel to generate a filtered signal,sampling the filtered signal to generate samples of the filtered signalover a predetermined time interval, determining position and amplitudedata for each of the samples of the filtered signal over thepredetermined time interval, reconstructing the coded signal using theposition and amplitude data for each of the samples and decoding thereconstructed coded signal to generate a signal having a set of pulsesover a channel usage interval.

The sampling kernel can have a bandwidth corresponding to a rate ofinnovation of the coded signal. A set of Diracs corresponding to thecoded signal can be generated based on one or more derivatives of anequation representing the samples of the coded signal. The position dataand the amplitude data can be determined for each Dirac in the set ofDiracs. The coded signal can be reconstructed using the position dataand the amplitude data for each Dirac corresponding to the samples inthe predetermined time interval. The coded signal can be decoded at asampling rate at least equal to twice the number of pulses per channelusage interval of the coded signal.

In another aspect, a system for generating and reconstructing a codedsignal for free-space communications is provided. The system comprisinga binomial pulse position modulation circuit configured to convert adata symbol into a set of pulses, the data symbol corresponding to oneor more bits, and generate a signal having the set of pulses over achannel usage interval. The system further comprises an encoding circuitconfigured to encode the signal by generating one or more codewordsbased on a predetermined number of error correction bits. The one ormore codewords can be used represent the signal having the set ofpulses.

The system further comprises a filtering circuit configured to receivethe coded signal, apply a sampling kernel to the received coded signalto generate a filtered signal, and sample the filtered signal togenerate a set of samples of the filtered signal over a predeterminedtime interval. The system further comprises a decoding circuitconfigured to decode the samples of the filtered signal to recover thesignal having the set of pulses over the channel usage interval.

In some embodiments, the system comprises a reconstruction moduleconfigured to determine position and amplitude data for each of thesamples of the filtered signal. The reconstruction module can beconfigured to reconstruct the coded signal using the position andamplitude data for each of the samples. The decoder circuit can beconfigured to sample the coded signal at a rate equal to at least twicethe number of pulses per the channel usage interval of the coded signal.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing concepts and features may be more fully understood fromthe following description of the drawings. The drawings aid inexplaining and understanding the disclosed technology. Since it is oftenimpractical or impossible to illustrate and describe every possibleembodiment, the provided figures depict one or more illustrativeembodiments. Accordingly, the figures are not intended to limit thescope of the concepts, systems and techniques described herein. Likenumbers in the figures denote like elements.

FIG. 1 is block diagram of an orbital angular momentum transceiversystem for use in free-space optical (FSO) communications;

FIG. 2 is a block diagram of a system for encoding and decoding abinomial pulse position modulation (BPPM) signal for FSO communications;

FIGS. 3-3A are a flow diagram of a method for generating andreconstructing a coded signal over a FSO channel;

FIG. 3B is a block diagram of a two stage method for performingmulti-stage reduced sampling;

FIG. 3C is a block diagram of a method for performing down sampling;

FIG. 3D is a block diagram of a method for performing multi-rate filterresampling;

FIG. 3E is a block diagram of a method for performing random sampling;

FIG. 3F is a block diagram of a method for performing soft PPM symbolblock decoding; and

FIG. 4 is a block diagram of an embodiment of a processing system forgenerating and reconstructing a coded signal in accordance with thetechniques described herein.

DETAILED DESCRIPTION

Now referring to FIG. 1, an orbital angular momentum (OAM) transceiversystem 100 includes a transmitter 104 and a receiver 122. Transmitter104 and receiver 122 can be configured to communicate over a free-spaceorbital (FSO) channel 130. For example, transmitter 104 can transmit anencoded binomial pulse position modulation (BPPM) signal 102 over FSOchannel 130 to receiver 122. It should be appreciated that althoughtransceiver system 100 is described herein as an OAM transceiver system,transceiver system 100 can be configured and utilized in a variety ofdifferent types of FSO communications.

Transmitter 104 includes one or more modulators 106 a-106 n, one or moreholograms 110 a-110 n and a first optics device 112 to form anN-dimensional OAM transmitter. Receiver 122 includes a second opticaldevice 114, one or more holograms 116 a-116 n and one or moredemodulators 120 a-120 n to form an N-dimensional OAM receiver.

The FSO channel may 130 may include different forms of free-space, suchas but not limited to air, outer space or a vacuum environment. As thesignals are transmitted over the free-space, the signals may be affectedby the environmental properties of the respective FSO channel 130. Forexample, conditions such as fog, rain or snow can cause fading,resulting in a deviation of the attenuation of the signal when it isreceived at receiver 122. Further, signals transmitted over FSO channel130 may be affected by turbulence. Thus, to mitigate these issuestypically experienced with FSO communications, transmitter 104 can beconfigured to generate and transmit encoded BPPM signal 102 thatprovides for coding gain against fading and/or turbulence issues of FSOchannel 130.

Transmitter 104 can be configured to use OAM techniques to manipulatephase spatial distribution of a light beam to encode data informationinto the light beam. Thus, in some embodiments, encoded BPPM signal 102may include an OAM beam or optical beam.

The one or more modulators 106 a-106 n of transmitter 104 may includemodulator circuits and/or electronic devices formed within transmitter104. For example, the one or more modulators 106 a-106 n may include,but not limited to, a radiofrequency (RF) modulator or a Mach-Zehndermodulator. Modulators 106 a-106 n can be configured to control anamplitude of an optical wave (e.g., optical signal) to generate one ormore modulated signals 108 a-108 n. Modulators 106 a-106 n can receive abaseband input signal and generate a modulated signal as a preliminarystep to prepare the signal for transmission. Each of the one or moremodulated signals 108 a-108 n may correspond to different OAM modes. Inother embodiments, the one or more modulated signals 108 a-108 n maycorrespond to the same OAM mode. The OAM mode may refer to a property(e.g., shape) of the modulated signals 108 a-108 n (e.g., property of alight beam). In some embodiments, modulators 106 a-106 n inject orotherwise add information onto a carrier wave of the modulated signals108 a-108 n. An output of modulators 106 a-106 n can be communicativelycoupled to an input of holograms 110 a-110 n.

The one or more holograms 110 a-110 n may receive one or more modulatedsignals 108 a-108 n from the one or more modulators 106 a-106 n.Holograms 110 a-110 n can be configured to diffract light or otherwiseadjust diffraction angles of the modulated signals 108-108 n to form animage or optical signal. For example, holograms 110 a-110 n can generatea holographic signal 111 that is transmitted to optics device 112, whichcan be provided as a telescope. Holograms 110 a-110 n may include volumeholograms, thick holograms, Bragg holograms. reflective surfaces orother forms of physical structures used for adjusting diffraction anglesof a light beam or optical signal. An output of holograms 110 a-110 ncan be communicatively coupled to an input of optics device 112.

First optics device 112 may receive holographic signal 111 fromholograms 110 a-110 n. First optics device 112 can be configured toincrease a diameter (or size) of the holographic signal 111 to generateencoded BPPM signal 102 for transmission over the FSO channel 130. Forexample, first optics device 112 may include a telescope, such as anexpanding telescope. The encoded BPPM signal 102 may be a coded signalin the form of an OAM beam. For example, in some embodiments, encodedBPPM signal 102 may include a set of BPPM pulses used to represent adata symbol. The encoded BPPM signal 102 may be encoded using variousblock encoding techniques to encode the BPPM pulses as will be discussedin greater detail with respect to method 300 of FIGS. 3-3A.

An input of second optics device 114 can receive encoded BPPM signal 102from an output of first optics device 112. Second optics device 114 canbe configured to modify properties of encoded BPPM signal 102 togenerate a compressed signal 115. For example, second optics device 114can be configured to reduce a diameter or size of encoded BPPM signal102 to generate compressed signal 115. An output of second optics device114 can be communicatively coupled to an input of one or more holograms116 a-116 n.

Receive holograms 116 a-116 n can receive compressed signal 115 fromsecond optics device 114. Holograms 116 a-116 n can be configured todiffract light or otherwise adjust diffraction angles of the compressedsignal 115 to generate one or more projection signals 118 a-118 n. Forexample, holograms 116 a-116 n can be configured to determineprojections along corresponding OAM modes and provide the respective OAMmode to one or more of the demodulators 120 a-120 n. Thus, in anembodiment, each of the one or more projection signals 118 a-118 n maycorrespond to a different OAM mode. In some embodiments, each of the oneor more projection signals 118 a-118 n may correspond to the same OAMmode. Holograms 116 a-116 n may include conjugate volume holograms,thick holograms, Bragg holograms. reflective surfaces or other forms ofphysical structures used for adjusting diffraction angles of a lightbeam or optical signal. An output of holograms 116 a-116 n may becommunicatively coupled to an input of one or more demodulators 120a-120 n.

Demodulators 120 a-120 n can receive the one or more projections 118a-118 n from holograms 116 a-116 n. Demodulators 120 a-120 n may includemodulator circuits and/or electronic devices formed within receiver 122.For example, demodulators 120 a-120 n may include, but not limited to,coherent demodulators or direct detection receivers.

Demodulators 120 a-120 n can be configured to demodulate projectionsignals 118 a-118 n to separate or otherwise identify carrier phaseinformation from the projection signals 120 a-120 n. For example,demodulators 120 a-120 n can separate information and/or data that wasmodulated onto the carrier of the projection signals 120 a-120 n togenerate signals 121 a-121 n.

In some embodiments, one or more collimators (not shown) may be disposedin the signal path (e.g., FSO channel 130) between transmitter 104 andreceiver 122. The collimators may be components of transmitter 104and/or receiver 122 or separate devices disposed in the signal pathbetween transmitter 104 and receiver 122.

Now referring to FIG. 2, an OAM transceiver system 200 for encoding anddecoding a binomial pulse position modulation (BPPM) signal over a FSOchannel is provided. The OAM transceiver system 200 includes BPPMcircuit 210, an encoding circuit 220, a filtering circuit 240, areconstruction circuit 250 and a decoding circuit 260. Thereconstruction circuit 250 may include a compressive sensing circuit255.

In some embodiments, the BPPM circuit 210 and an encoding circuit 220form a transmitter portion 270 of OAM transceiver system 200 andfiltering circuit 240, reconstruction circuit 250 and decoding circuit260 form a receiver portion 280 of OAM transceiver system 200.

In operation, a signal 202 can be received at BPPM circuit 210. Thesignal 202 (e.g., optical signal, laser beam) may include one or morebits corresponding to information to be transmitted. BPPM circuit 210can convert the one or more bits into a data symbol. In someembodiments, the one or more bits may be converted into a single datasymbol.

BPPM circuit 210 modulates the one or more bits into a set of datasymbols that correspond message symbols of the Galois field of aReed-Solomon code. For example, one data symbol can be formed using 4bits corresponding a GF (2⁴=16) Reed-Solomon code where each messagesymbol is formed over the 4-bits. These 4-bit messages (e.g., BPPMsignal 212) are converted to PPM symbols in encoding circuit 220 afterbeing encoded by a Reed-Solomon code. For example, BPPM circuit 210 cangenerate data symbols for a radix-2 GF (2^(m)) Reed-Solomon encoder,where m is the number of bits to construct a Reed-Solomon codeword, aBPPM signal 212 (g(kT)). In some embodiments, bits can be converted intosymbols for a non-radix-2 GF (p^(m)) Reed-Solomon code, where (p) is aprime number. For such embodiments, (p) and (m) can be selected toprovide a minimum degree of sparsity (e.g. 10%) when these symbols areconverted into PPM pulses by encoding circuit 220.

Encoding circuit 220 can encode the BPPM signal 212 by generating one ormore codewords. Encoding circuit 220 can use a variety of differentblock encoding techniques to generate the codewords. For example, insome embodiments, encoding circuit 220 can use Reed-Solomon encodingtechniques to generate the codewords.

Codewords are generated by adding data symbols to the BPPM signal 212.For example, the BPPM signal 212 may have K data symbols of s bits eachand 2t symbol error correction capability. A Reed-Solomon encodertransforms the (K) message symbols to generate an (n) symbol codewords,where (n=K+2t). In an embodiment, the n symbol codeword can be correctedfor up to t symbols that contain errors or incur errors duringtransmission, where each symbol has (s) bits. Thus, each codeword symbolcan be converted into a PPM symbol. Each binary codeword set of bits canbe mapped to one time location. For example, the binary pattern (1010)is converted to decimal number 10 which is position 10 out of 16possible positions in time. The encoding techniques will be described ingreater detail below with respect to method 300 of FIGS. 3-3A.

Encoder circuit can generate an encoded signal 222, h(kT) and transmitthe encoded signal 222 over a FSO channel 230 to filtering circuit 240.During transmission over the FSO channel 230, the encoded signal 222 mayexperience various effects of an atmosphere or environment that FSOchannel 230 is provided in, such as atmospheric absorption, weathercomplications (e.g., rain, snow, fog, etc.) resulting in fading and/orturbulence.

Thus, the encoded signal received at filtering circuit 240 can beprocessed, resulting in a signal having time delays and/or low bit errorrates. For example, filter circuit 240 may receive a modified encodedsignal, y(t)=h((t−τ))+n(t), where n(t) represents a noise factor of FSOchannel 230. In an embodiment, by using BPPM pulses and encoding theBPPM signals with error correction bits the effects of the FSO channel230 can be mitigated. In some embodiments, by using BPPM pulses andencoding the BPPM signals with error correction bits the effects of theFSO channel 230 can be eliminated.

Receive filtering circuit 240 can receive the modified encoded signal232 and apply a sampling kernel to the modified encoded signal 232 togenerate a filtered signal 242. Filtering circuit may be configured tosample signals using finite rate of innovation (FRI) and/or compressivesensing techniques. To prepare the modified coded signal for FRIsampling, the sampling kernel may be applied to the modified encodedsignal 232. The sampling kernel may include sinc and/or Gaussiankernels. Filtering circuit 240 may include a lowpass filterapproximation filter (e.g., sinc filter) to generate a lowpassapproximation of the modified coded signal. In some embodiments, thesampling kernel may be referred to as a convolution kernel or smoothingfilter.

Filtering circuit 240 can sample the filtered signal 242 a predeterminednumber of times to generate a predetermined number of samples. The setof samples may be equal to or greater than a minimum number of samplesto reconstruct the original coded signal. For example, the number ofsamples needed to accurately reconstruct the coded signal may correspondto a number of degrees of freedom of the respective signal. The samplingwill be described in greater detail below with respect to method 300 ofFIGS. 3-3A. Filtering circuit 240 can provide the set of samples of thefiltered signal 242 to reconstruction circuit 250.

Reconstruction circuit 250 can reconstruct the coded signal using thesamples of the filtered signal 242. In some embodiments, reconstructioncircuit 250 can reconstruct the signal using FRI techniques (e.g.,Cadzow denoising) or compressive sensing. For example, reconstructioncircuit 250 may take one or more derivatives (e.g., (R+1) derivatives)of the samples of filtered signal 242 until the signal is converted intoa set of K-Diracs x(t). In other embodiments, for example embodimentsusing modulated PPM symbols to represent the signals of interest,derivatives may not be needed and thus not taken.

Reconstruction circuit 250 can be configured to determine Fourier seriescoefficients corresponding to the samples of filtered signal 242. TheFourier series coefficients can be manipulated using various techniques(e.g., annihilating filter) to determine position and amplitude datacorresponding to each of the K Diracs and thus for each of the samples.

In some the embodiments, the position and amplitude data may correspondto a Dirac representative of a respective sample. The position data mayprovide a location of a respective sample along an x-axis of a graph ofthe set of samples and the amplitude data may provide a height of arespective sample along a y-axis of the set of samples. Thus, having theposition and amplitude data for each of the samples, the coded signalcan be reconstructed to generate a reconstructed coded signal 252. Thereconstruction will be described in greater detail below with respect tomethod 300 of FIGS. 3-3A. Reconstruction circuit 250 can be coupled toan input of decoding circuit 260 to provide the samples of filteredsignal 242 and the position and amplitude data.

Decoding circuit 260 can be configured to decode the filtered signal 242to recover the original signal having the set of pulses. In someembodiments, decoding circuit 260 can sample the set of samples of thecoded signal at a rate equal to a number of pulses per channel usageinterval of the coded signal. In an embodiment, decoding circuit 260generates an output signal 262 that is the BPPM signal 212 (e.g., set ofpulses) generated by the BPPM circuit of the transmitter.

Now referring to FIGS. 3-3A, a method 300 for generating andreconstructing a coded signal is provided. The encoding and decodingtechniques, as described herein, can be performed to generate and encodea binomial pulse position modulation (PPM) signal for use in FSOcommunications. For example, an encoded BPPM signal can be generated byan OAM transceiver system (e.g., OAM transceiver system 100 of FIG. 1,OAM transceiver system 200 of FIG. 2). The encoded BPPM signal can betransmitted over a FSO channel to a receiver portion of the OAMtransceiver for sampling and reconstruction. The encoded BPPM signalincludes random, sparse sets of multiple BPPM pulses per channel usageinterval. The random, sparse sets of multiple pulses can increase thecapacity of the encoded BPPM signal and the encoding techniques providecoding gain to mitigate atmospheric and/or environmental affects of theFSO channel. For example, the BPPM signal can be generated such that theaffects of fading and/or turbulence typically experienced in FSOcommunications is reduced or eliminated. The BPPM signal can bereconstructed and decoded at a rate equal to a number of BPPM pulses.

Method 300 begins at block 302, by encoding a data symbol into a set ofpulses. The data symbol may correspond to or otherwise include one ormore bits. For example, a data stream having one or more bits may bereceived at one or more modulators of a transmitter portion of a OAMtransceiver (e.g., modulators 106 a-106 n, transmitter 104 of OAMtransceiver system 100 of FIG. 1) for transmission over the FSO channel.The one or more bits may be encoded into or otherwise mapped to a datasymbol. In some embodiments, the one or more bits may be encoded intomultiple data symbols.

The data symbol can be modulated into a set of pulses. For example, thedata symbol (and thus the one or more bits) can be encoded into a set ofpulses to generate BPPM pulses. In some embodiments, one symbol may beencoded into multiples BPPM pulses.

At block 304, a signal can be generated having the set of pulses over apredetermined time interval. In some embodiments, the predetermined timeinterval corresponds to a channel usage interval. The set of pulses canbe randomly generated over the channel usage interval. For example, eachpulse in the set of pulses can be generated such that a respective pulsedoesn't have a predetermined position or a have a position selectedbased on a position of another different pulse in the set of pulses. Theset of pulses may include sparse sets of multiple pulses per the channelusage interval. The sparseness of a set of pulses may be measured withrespect to a duration of the respective predetermined time interval(e.g., channel usage interval). For example, the sparseness may bemeasured based at least upon a number or a percentage of pulsesgenerated as compared to a total duration of the respective channelusage interval and a total number of possible pulse positions within thechannel usage interval. In some embodiments, the signal may include aBPPM signal having multiple pulses used to represent one data symbolover the channel usage interval.

At block 306, one or more codewords may be generated based on a numberof error correction bits and the signal having the set of pulses (e.g.,BPPM signal). A codeword may generally refer to one or more portions ofthe signal that have been divided or otherwise apportioned into codedblocks of data of some fixed size. The fixed size may be based at leastin part on the size of the original signal and the number of errorcorrection bits added to the original signal.

To encode the BPPM signal, the set of pulses may be converted into oneor more codewords for transmission over the FSO channel. Encoding theBPPM signal can mitigate against various affects of the FSO channelenvironment (e.g., atmospheric conditions, fading, turbulence, etc.) byadding error correction bits to the BPPM signal to create a buffer for apredetermined number of potential errors that may occur duringtransmission and can be corrected when the BPPM signal is received at areceiver portion (e.g., receiver 122 of FIG. 1) of the FSO communicationpath.

In some embodiments, the codewords may be generated using block-basederror correcting code techniques, such as but not limited to,Reed-Solomon (R-S) encoding techniques. For example, the set of pulsesmay be mapped to one or more codewords using a non-radix-2 R-S code. Inblock encoding, a decoder can process each block of a codeword tocorrect errors caused during transmission to recover the original data.To convert the set of message symbols into a codeword or multiplecodewords, a number of error correction symbols may be added beforeconverting codeword symbols into the set of PPM pulses. The number oferror correction bits added can correspond to a number of errors thatcan be corrected at a demodulator or decoding circuit of a receiverportion of an OAM transceiver system (e.g., demodulators 120 a-120 n ofFIG. 1, decoding circuit 260 of FIG. 2) when the codewords are received.Thus, the number of error correction symbols added may be selected basedat least in part on an error correction threshold for a particularapplication.

Codewords are generated by adding data symbols to the BPPM signal 212.For example, the BPPM signal 212 may have (K) data symbols of (s) bitseach and (2t) symbol error correction capability. A Reed-Solomon encodertransforms the (K) message symbols to generate an (n) symbol codewords,where (n=K+2t). In an embodiment, the (n) symbol codeword can becorrected for up to (t) symbols that contain errors or incur errorsduring transmission, where each symbol has (s) bits. In suchembodiments, each codeword symbol is converted into a PPM symbol. Eachbinary codeword set of bits is mapped to one time location. For example,binary pattern (1010) is converted to decimal number 10 which isposition 10 out of 16 possible positions in time.

For example, in one embodiment, a three error correcting codeword may begenerated using a non-radix-2 error correcting code, Galois Field (GF)value of GF (11¹) and a R-S value of R-S (10,4). Where 11′ represents asize of a finite field, where 11 is a prime number and 1 is a positiveinteger such that 11 has 1 element of the finite field as root. In theR-S notation, the 10 represents a total number of symbols (‘n’) of thecodeword and 4 represents a length (‘k’) of the data symbolscorresponding to the original set of pulses (e.g., R-S(n,k). In thisembodiment, the parity is equal to n−k or 10-4 and thus (2t) is equal tosix. The decoder circuit can correct up to (t) symbols that containerrors in a codeword where (2t=n−k). Thus, the decoder circuit cancorrect up to three errors. Another advantage of using PPM modulatedReed-Solomon codewords is for fading mitigation. For example, the FSOchannel can cause amplitude fading of PPM which can result in notdetecting PPM pulses during codeword intervals. When that occurs thenthe receiver may miss detecting a PPM symbol during that decodinginterval, however it may know the location of the codeword where it didnot detect a PPM symbol. This codeword location can be designated as anerasure. This reduces the number of degrees of freedom for detection byone for each codeword PPM symbol. With RS codes, the error decodingcapability becomes t=n−k. It is not known a-priori how many errors maybe due to PPM pulse positions being incorrect (hard-errors) versus howmany PPM symbols are not detected, so the decoders can be designed withsome number of erasures and hard-errors specified.

In some embodiments, the one or more codewords may be generated suchthat they are sparse. For example, the three error correcting codewordhaving a Galois Field (GF) value of GF (11¹) may have a low sparse levelper the channel usage interval. The sparseness may be determined by thesize of the finite field and the number of roots, here 1/11. Forexample, BPPM circuit 210 can generate data symbols for a radix-2 GF(2^(m)) Reed-Solomon encoder, where m is the number of bits to constructa Reed-Solomon codewords, a BPPM signal 212 (g(kT)). In someembodiments, bits can be converted into symbols for a non-radix-2GF(p^(m))Reed-Solomon code, where (p) is a prime number. For example, if(p) and (m) are chosen to provide a minimum degree of sparsity (e.g.10%) when these symbols are converted into PPM pulses and if(1/p^(m))<10%, this should yield enough sparseness of PPM symbols suchthat FRI or compressive methods can be used to recovery PPM symbols.Usually, Radix-2 GF (2^(m)) R-S codes are less complex to implement.

In some embodiments, encoding the BPPM signal can increase the capacity(i.e., quantization) of the BPPM signal. For example, using the threeerror correcting codeword, having the Galois Field (GF) value of GF(11¹) and the R-S value of R-S (10,4), the number of possible codewordsmay be increased such that the number of possible codewords correspondsto the GF factor (here p=11) and the number of data symbols (here k=4).Thus, the number of possible codewords and/or quantization levels may beincreased such that the number of possible codewords is equal to p^(k)(here 11⁴) messages per channel usage interval or log₂(11⁴) bits≈12 bitsper channel usage. In contrast to conventional M-PPM, which wouldprovide 10*11=110 time slots per channel usage, which is <7-bits perchannel usage.

It should be appreciated that for encoded messages, the number ofcodewords can be equal to the number of PPM pulses since there is onlyone PPM pulse per codeword symbol. For example, in an embodiment having1 pulse per codeword, the probability of having adjacent PPM symbolsclose to each other in time can be avoided, thus minimizing opticalpulse demodulator receiver issues.

At block 308, the coded signal (e.g., encoded BPPM signal) may be formedusing the one or more codewords to represent the set of pulses. Thecoded signal may include R-S encoded BPPM pulses.

The coded signal may be provided to an optics device (e.g., first opticsdevice 112 of FIG. 1) for transmission over the FSO channel. The FSOchannel may be subject to fading and/or turbulence. The FSO channel mayinclude, but not limited to, air, outer space, or a vacuum. Theatmospheric conditions of the respective FSO channel can cause errorsduring transmission due to issues such as atmospheric absorption,turbulence and fading caused by rain, snow, fog, etc. In an embodiment,by combining encoding techniques as described herein with binomial PPMpulses, the effects of fading and/or turbulence of the FSO channel maybe mitigated or eliminated. For example, the encoding may provide codinggain against fading and/or turbulence typically experienced intransmitting signals over the FSO channel. The sparseness of the BPPMsignal can be exploited on the receiver end to allow for compressivesensing and thus, in some embodiments, decreasing receiver recoveryreconstruction sampling rate as compared with conventional methods.

In some embodiments, the received coded signal can be filtered andsampled using FRI techniques in one or more stages to recover the set ofpulses from the received coded signal (e.g., BPPM pulses, BPPM symbols).In some embodiments having a single stage recovery approach, direct FRIrecovery may be performed to determine position data for the set ofpulses. The position data for the set of pulses can correspond toposition data for the one or more sparse codewords (e.g., R-S BPPMcodewords) in the coded signal.

In a two-stage recovery approach, during a first stage, position and/oramplitude data for the set of pulses can be determined. A grid (orgraph) can be generated plotting each of the pulses according to theirrespective position and amplitude data. The second stage may includeperforming at least one of the following: resampling to BPPM codewordpositions or time-multiplexed BPPM direct symbol recovery.

In another two-stage embodiment and referring briefly to FIG. 3B, amethod 320 for performing a multi-stage reduced sampling technique isprovided. Method 320 includes a first stage and a second stage. In thefirst stage, at block 322, the received coded signal can be filtered togenerate a filtered signal. A variety of different filtered techniquesmay be used to generate the filtered signal and will be discussed ingreater detail below with respect to block 310 of FIG. 3A. At block 323,the filtered signal can be sampled to generate a set of samples. Thesampling techniques will be discussed below with respect to block 312 ofFIG. 3A. At block 324, FRI recovery may be performed on the set ofsamples to determine position and/or amplitude data for the set ofpulses in the received coded signal.

The position and amplitude data for the set of samples may be providedto at least one of a plurality of different second stage techniques. Forexample, the second stage may include performing at least one of thefollowing: direct-down-sampling at block 325, resampling to PPM codewordpositions at block 326 or random sampling recovery using compressivesensing techniques at block 327. Each of the second stage approacheswill be described in greater detail below with respect to FIGS. 3C-3E,respectively.

At block 310, a sampling kernel may be applied to a received codedsignal (hereinafter coded signal) to generate a filtered signal. Thecoded signal may be received at an optics device of a receiver portionof an OAM transceiver system (e.g., second optics device 114 of receiver122 of FIG. 1). The coded signal may be in the form of a non-bandlimitedsignal. For example, the coded signal may include, but not limited to,at least one of a stream of Diracs, non-uniform splines, or piecewisepolynomials.

The coded signal can be sampled at its respective rate of innovation.For example, the coded signal may include a finite number of degrees offreedom per unit of time (‘τ’) and this number may be referred to as arate of innovation (‘p’) of the coded signal. The rate of innovation ofthe coded signal may be based at least upon the type of signal it is.For example, in one embodiment, a stream of Diracs may have a rate ofinnovation of

${p = \frac{2K}{\tau}},$a non-uniform spline may have a rate of innovation of

${p = \frac{2K}{\tau}},$and a piecewise polynomial may have a rate of innovation of

${p = \frac{\left( {R + 2} \right)K}{\tau}},$where K represents a number of Diracs corresponding to the respectivesignal and τ represents the period of unit of time. Thus, the stream ofDiracs may have 2K degrees of freedom per unit of time (‘τ’), thenon-uniform splines may 2K degrees of freedom per unit of time (‘τ’) andthe piecewise polynomial may (R+2)K degrees of freedom per unit of time(‘τ’). In an embodiment, the rate of innovation can be proportional tothe number of Diracs.

To sample and ultimately reconstruct the coded signal at its respectiverate of innovation, the sampling kernel may be applied to the codedsignal. The sampling kernel may include sinc and/or Gaussian kernels.For example, the sampling kernel may include a lowpass filterapproximation filter (e.g., sinc filter) and generated a filtered signalthat includes a lowpass approximation of the coded signal. In someembodiments, the sampling kernel may be referred to as a convolutionkernel or smoothing filter.

In some embodiments, the coded signal may be converted into a differentform from the form it was received in at the optics device for samplingand reconstruction. For example, the coded signal having non-uniformsplines or piecewise polynomials may be converted into a stream of KDiracs, where K represents the number of Diracs in the stream over thechannel usage interval. To convert the coded signal, one or morederivatives of the coded signal may be performed until the stream of KDiracs is generated. The coded signal may be sampled and reconstructedusing properties (e.g., position, amplitude, weights) of each of the KDiracs.

At block 312, the filtered signal can be sampled to generate a set ofsamples. In an embodiment, the filtered signal may be sampled such thata minimum number of samples are determined. The minimum number ofsamples may be a minimum number of samples needed to reconstruct thecoded signal accurately within a set accuracy threshold.

In some embodiments, a minimum number of samples may be used forcompressive sensing. The compressive sensing techniques, as describedherein, can be performed to recover one or more signals using fewersamples and/or measurements than traditional methods. For example, thereceiver portion of the OAM transceiver can be configured to performcompressive sensing on the filtered signal which may be a sparserepresentation of the original signal. The sparseness of the filteredsignal can be exploited to accurately reconstruct the original signalusing the minimum number of samples.

In some embodiments, the number of degrees of freedom of the respectivefiltered signal corresponds to the minimum number of samples needed toreconstruct the coded signal accurately within the set accuracythreshold. For example, in a signal having a stream of K Diracs, thenumber of degrees of freedom may be 2K. Thus, 2K samples may be theminimum number of samples needed to accurately reconstruct the signal.

In an embodiment, using the sampling kernel h_(B)(t)=Bsinc(Bt), where Bis chosen such that it is greater than or equal to the rate ofinnovation

$p = {\frac{2K}{\tau}.}$The filtered signal can be convolved and sampled, (h_(B)(t)*x(t)) at Nuniform locations (t=nT, n=0, N−1), where N≥2M+1, and M=[Bτ/2]. Thesamples of the filtered signal can be represented by the following:y(n)=

h _(B)(t−nT),x(t)

, n=0, . . . ,N−1wherey(n)=∫_(−∞) ^(∞) h _(B)(nT−t),x(t)dt

In some embodiments, y(n) may correspond to a sufficientcharacterization of x(t), where x(t) represents the coded signaltransmitted over the FSO channel.

At block 314, position and amplitude data for each of the samples of thefiltered signal can be determined. The position and amplitude data ofthe samples may correspond to one or more Fourier series coefficients ofthe coded signal (e.g., x(t)). Thus, the Fourier series coefficients maybe determined in order to determine the position and amplitude data foreach of the samples. The number of Fourier series coefficients needed todetermine the position and amplitude data may correspond to the numberof degrees of freedom of the respective signal.

For example, once a predetermined number of Fourier series coefficientsof the coded signal (x(t)) are determined equal to the number of degreesof freedom of the respective signal, position and amplitude data for thecoded signal can be determined.

A τ-periodic stream of K Diracs can be represented by the followingformula:x(t)=Σ_(n∈)

c _(n)δ(t−t _(n))

Where t_(n+K)=t_(n)+τ, and c_(n+K)=c_(n)+τ∀_(n)∈

. This signal has 2K degrees of freedom per period, and thus, has a rateof innovation of

$p = {\frac{2K}{\tau}.}$

The periodic stream of Diracs can be rewritten as:

${x(t)} = {\sum\limits_{k = 0}^{K - 1}{c_{k}{\sum\limits_{n \in {\mathbb{Z}}}{\delta\left( {t - t_{k} - {n\;\tau}} \right)}}}}$${x(t)} = {\sum\limits_{k = 0}^{K - 1}{c_{k}\frac{1}{\tau}{\sum\limits_{m \in {\mathbb{Z}}}^{\;}e^{i(\frac{2\pi\;{m{({t - t_{k}})}}}{\tau})}}}}$By invoking Poisson's sum formula, we get:

${x(t)} = {\sum\limits_{m \in {\mathbb{Z}}}^{\;}{\frac{1}{\tau}\left( {\sum\limits_{k = 0}^{K - 1}{c_{k}e^{- {i(\frac{2\pi\;{m{({t - t_{k}})}}}{\tau})}}}} \right)e^{i(\frac{2\pi\;{mt}}{\tau})}}}$${{x\lbrack m\rbrack} = {\frac{1}{\tau}\left( {\sum\limits_{k = 0}^{K - 1}{c_{k}e^{- {i(\frac{2\pi\;{mt}_{k}}{\tau})}}}} \right)}},{m \in {\mathbb{Z}}}$

where c_(k) is the amplitude of the Dirac impulse, t_(k) is the time(i.e location of the impulse and τ is the time interval for one periodof Dirac impulses. X[m] represents the Fourier series coefficients(spectral values) of the coded signal, x(t), as a linear combination of(K) complex exponentials. X[m] can be used to determine the position andamplitude data for each of the samples. To determine position t_(k) dataa variety of methods may be used including, but not limited to, Prony'smethod, matrix pencil method, MuSIC methods, compressive sensing or anannihilating filter. To determine amplitude (c_(k)) data a variety ofmethods may be used including, but not limited to, Levinson-Durbinalgorithms or an annihilating filter.

In some embodiments, an annihilating filter A[m] can be used to solvefor the Fourier series coefficients. The roots of the annihilatingfilter A[m] correspond to the location (t_(k)) of each of the Diracs.Thus, by solving for the roots of the annihilating filter A[m], thelocations (t_(k)) of each of the Diracs are identified.

For example, a finite Fourier series A[m], m=0, . . . , K withz-transform represented as:

${A(z)} = {\sum\limits_{k = 0}^{K}{{A\lbrack m\rbrack}z^{- m}}}$

And having K zeroes at

${u_{k} = e^{- {i(\frac{2\pi\; t_{k}}{\tau})}}},$that is

${A(z)} = {\prod\limits_{k = 0}^{K}\left( {1 - {e^{- {i(\frac{2\pi\; t_{k}}{\tau})}}z^{- 1}}} \right)}$

Note that A[m] is the convolution of K elementary filters withcoefficients

$\left\lbrack {1,{{- e^{- {i(\frac{2\pi\; t_{k}}{\tau})}}}z^{- 1}}} \right\rbrack,$k=0, K−1 and that the convolution of such a filter with the exponential

${\left\{ {{- e^{- {i(\frac{2\pi\; t_{k}}{\tau})}}}z^{- 1}} \right\}\mspace{14mu} m} \in {\mathbb{Z}}$is zero. For example:

${\left\lbrack {1,{{- e^{- {i(\frac{2\pi\; t_{k}}{\tau})}}}z^{- 1}}} \right\rbrack*\left\lbrack \mspace{14mu}{\ldots\mspace{14mu},e^{i(\frac{2\pi\; t_{k}}{\tau})},1,e^{- {i(\frac{2\pi\; t_{k}}{\tau})}},e^{- {i(\frac{4\pi\; t_{k}}{\tau})}}} \right\rbrack} = 0$

Thus, because x[m] is the sum of (K) exponentials and each being zeroedout by one of the roots of A[m], it follows that A[m]*x[m]=0. The filterA[m] is thus referred to as an annihilating since it annihilates (K)exponentials. In some embodiments, the annihilating filter may bereferred to as the error locating filter. By obtaining the roots of theannihilating filter A [m], the positions, t_(k), of the Diracs areidentified. Having the positions, the amplitudes (or weights), c_(k), ofthe Diracs can be determined.

Let

${{x\lbrack m\rbrack} = {\frac{1}{\tau}\left( {\sum\limits_{k = 0}^{K - 1}{c_{k}e^{- {i(\frac{2\pi\; m\; t_{k}}{\tau})}}}} \right)}},$and with

$u_{k} = {{e^{- {i(\frac{2\pi\; t_{k}}{\tau})}}\mspace{14mu}{then}\mspace{14mu}{x\lbrack m\rbrack}} = {{\frac{1}{\tau}{x\lbrack m\rbrack}} = {\frac{1}{\tau}\left( {\sum\limits_{k = 0}^{K - 1}{c_{k}u_{k}^{m}}} \right)}}}$then with A(z)=Π_(k=0) ^(K)(1−u_(k)z⁻¹)=Σ_(l=0) ^(K)A[l]z^(−l), itfollows

${\left( {A*x} \right)\lbrack m\rbrack} = {\sum\limits_{l = 0}^{K}{{A\lbrack l\rbrack}{x\left\lbrack {m - l} \right\rbrack}}}$$\begin{matrix}{{\left( {A*x} \right)\lbrack m\rbrack} = {\sum\limits_{l = 0}^{K}{{A\lbrack l\rbrack}{x\left\lbrack {m - l} \right\rbrack}}}} \\{= {\sum\limits_{l = 0}^{K}{\sum\limits_{k = 0}^{K - 1}{c_{k}{A\lbrack l\rbrack}u_{k}^{n - l}}}}} \\{= {{\sum\limits_{k = 0}^{K - 1}{{c_{k}\left( {\sum\limits_{l = 0}^{K}{{A\lbrack l\rbrack}u_{k}^{- l}}} \right)}u_{k}^{n}}} = 0}}\end{matrix}$since A(u_(k))=(Σ_(l=0) ^(K)A[l]u_(k) ^(−l))=0,

${\cdot {x\lbrack m\rbrack}} = {\frac{1}{\tau}\left( {\sum\limits_{k = 0}^{K - 1}{c_{k}e^{- {i(\frac{2\pi\;{mt}}{\tau})}}}} \right)}$the definition of annihilating filter

Since

${{y\lbrack n\rbrack} = {\sum\limits_{m}{{x\lbrack m\rbrack}{H_{B}\left( \frac{2\pi\; m}{\tau} \right)}e^{i(\frac{2\pi\;{mnT}}{\tau})}}}},$and for

$H_{B}\left( \frac{2\pi\; m}{\tau} \right)$a sinc function thus a rectangular pulse in frequency domain, then

${y\lbrack n\rbrack} = {\sum\limits_{m}{{x\lbrack m\rbrack}e^{i(\frac{2\pi\;{mnT}}{\tau})}}}$thus, the DFT can be used of y[n] to give x[m]. To get the coefficientsof the annihilation filter one solves Σ_(l=0) ^(K)A[l]x[m−l]=0,

For example, K=3, one gets:

${\begin{bmatrix}{x\lbrack 0\rbrack} & {x\left\lbrack {- 1} \right\rbrack} & {x\left\lbrack {- 2} \right\rbrack} \\{x\lbrack 1\rbrack} & {x\lbrack 0\rbrack} & {x\left\lbrack {- 1} \right\rbrack} \\{x\lbrack 2\rbrack} & {x\lbrack 1\rbrack} & {x\lbrack 0\rbrack}\end{bmatrix} \cdot \begin{bmatrix}{A\lbrack 1\rbrack} \\{A\lbrack 2\rbrack} \\{A\lbrack 3\rbrack}\end{bmatrix}} = {- \begin{bmatrix}{X\lbrack 1\rbrack} \\{X\lbrack 2\rbrack} \\{X\lbrack 3\rbrack}\end{bmatrix}}$

which can be solved for A[1], A [2], A[3]. Now one solves for the rootsof A[z]=Σ_(m=0) ^(K)A[m]z^(−m)=0, where A(z)=Π_(k=0) ^(K)(1−u_(k)z⁻¹),where

$u_{k} = {e^{- {i(\frac{2\pi\; t_{k}}{\tau})}}.}$This gives locations of t_(k). Since

${{x\lbrack m\rbrack} = {\frac{1}{\tau}\left( {\sum\limits_{k = 0}^{K - 1}{c_{k}e^{- {i{(\frac{2\;\pi\;{mt}_{k}}{\tau})}}}}} \right)}},$then for K=3,

$\begin{bmatrix}{X\lbrack 1\rbrack} \\{X\lbrack 2\rbrack} \\{X\lbrack 3\rbrack}\end{bmatrix} = {{\frac{1}{\tau}\begin{bmatrix}1 & 1 & 1 \\e^{- {i{({2\;\pi\;{t_{0}/\tau}})}}} & e^{- {i{({2\;\pi\;{t_{1}/\tau}})}}} & e^{- {i{({2\;\pi\;{t_{2}/\tau}})}}} \\e^{- {i{({4\;\pi\;{t_{0}/\tau}})}}} & e^{- {i{({4\;\pi\;{t_{1}/\pi}})}}} & e^{- {i{({4\;\pi\;{t_{2}/\tau}})}}}\end{bmatrix}} \cdot \begin{bmatrix}c_{0} \\c_{1} \\c_{2}\end{bmatrix}}$can be solved for c₀, c₁, c₂ using matrix inverse method.

In some embodiments, the amplitude data for each of the samples of thefiltered signal can be determined using at least one of the followingtechniques; direct-down-sampling, resampling to PPM codeword positionsor random sampling recovery using compressive sensing techniques.Determining the amplitude data for each of the BPPM pulses maycorrespond to a second stage of a multi-stage recovery technique.

For example and now referring to FIG. 3C, a method 330 a for performingdown sampling is provided. Method 320 a begins at block 332, bygenerating a full resolution Sum of Gaussians using the position datafor each of the samples. The output signal of the FRI position andamplitude recovery (e.g., first stage block 324 of FIG. 3B) can berepresented as follows: {x_(k), t_(k)}, k=(0, 1, . . . , L−1), wherex_(k) represents the signal amplitude, t_(k) represents time and krepresents is the time epoch.

The output signal of the FRI position and amplitude recovery can bedownsampled to reduce its respective sampling rate. For example, a fullresolution Sum of Gaussians may be generated using the position andamplitude data from the output signal of the FRI position and amplituderecovery. The full resolution Sum of Gaussians may be represented asfollows:

${{y({nT})} = {\sum\limits_{l = 0}^{L - 1}{x_{l}{\exp\left( {- \frac{\left( {{nT} - t_{l}} \right)^{2}}{2\;\sigma^{2}}} \right)}}}},{n = \left\lbrack {0,1,\ldots\mspace{14mu},{N - 1}} \right\rbrack}$

where x_(l), t_(l) are amplitude and time epoch respectively. T is thesampling time interval for high resolution signal and σ is the standarddeviation of the Gaussian pulses—assumed to be equal for all pulses. Nis the total number of samples at full time resolution.

At block 334, the full resolution signal can be decimated to reduce asampling rate by a factor of

$\frac{Q}{N},$where Q represents the signal upsampling factor and N represents signaldownsampling factor. The decimation may provide Q samples of the outputsignal. The Q samples can be represented as follows:z(rW)=y(rW)

${W = \left\lbrack {\frac{N}{Q}T} \right\rbrack},{r = \left\lbrack {0,1,\ldots\mspace{14mu},{Q - 1}} \right\rbrack}$

At block 336, using the Q samples, the amplitudes for each of the Qsamples can be determined as follows.PPM(rW)=y(rW), r=[0,1, . . . Q−1];

where y(rW) is the output of the downsampled full resolution sum ofGaussians signal representation.

In some embodiments, the down sampling techniques may be performedwithout decimating the full resolution signal. For example, a downsampling method 330 b begins at block 338, by generating a Sum ofGaussians. The Sum of Gaussians can be generated at Q positions

$\left( {{e.g.},{W = \left\lbrack {\frac{N}{Q}T} \right\rbrack}} \right)$for the output signal of the FRI position and amplitude recovery can berepresented as follows: {x_(k), t_(k)}, k=(0, 1, . . . , L−1). The Sumof Gaussians can provide Q samples of the output signal, represented asfollows:

${{y({rW})} = {\sum\limits_{l = 0}^{L - 1}{x_{l}{\exp\left( {- \frac{\left( {{rW} - t_{l}} \right)^{2}}{2\;\sigma^{2}}} \right)}}}},{r = \left\lbrack {0,1,\ldots\mspace{14mu},{Q - 1}} \right\rbrack}$

At block 339, amplitude data for each of the Q samples can bedetermined. For example, amplitude data can be determined as follows:PPM(rW)=y(rW), r=[0,1, . . . ,Q−1];

Now referring to FIG. 3D, a method 340 is provided for performingresampling using multi-rate filter resampling techniques. Method 340using multi-rate filter resampling techniques may be performed on theoutput signal of the FRI position and amplitude recovery (e.g., {x_(k),t_(k)}, k=(0, 1, . . . , L−1). For example, at block 342, a fullresolution Sum of Gaussians may be generated.

${{y({nT})} = {\sum\limits_{l = 0}^{L - 1}{x_{l}{\exp\left( {- \frac{\left( {{nT} - t_{l}} \right)^{2}}{2\;\sigma^{2}}} \right)}}}},{n = \left\lbrack {0,1,\ldots\mspace{14mu},{N - 1}} \right\rbrack}$

At block 344, the full resolution Sum of Gaussians may be provided to apolyphase mulitrate filter. At block 345, the signal is upsampled byinserting Q zeros between each sample. At block 346, a low-pass filteris applied to the signal. At block 347, the output of the low passfilter is then downsampled by factor N to give Q samples. Thus, amultirate filter can generate Q samples of the original sum of Gaussianssignal for representation of output signal at desired rate of PPMsymbols.

The Q samples, which are the output of the multirate filter, can berepresented as follows:

z(rW) = y(rW)${W = \left\lbrack {\frac{N}{Q}T} \right\rbrack},{r = \left\lbrack {0,1,\ldots\mspace{14mu},{Q - 1}} \right\rbrack}$

At block 348, amplitude data for each of the Q samples can bedetermined. For example, the amplitude data can be represented asfollows:PPM(rW)=y(rW), r=[0,1, . . . ,Q−1];

Now referring to FIG. 3E, a method 350 is provided for performing randomsampling. In some embodiments, random sampling recovery usingcompressive sensing techniques may be performed on the output signal ofthe FRI position and amplitude recovery (e.g., {x_(k), t_(k)}, k=(0, 1,. . . , L−1). For example, at block 352, a full resolution Sum ofGaussians may be generated.

${{y({nT})} = {\sum\limits_{l = 0}^{L - 1}{x_{l}{\exp\left( {- \frac{\left( {{nT} - t_{l}} \right)^{2}}{2\;\sigma^{2}}} \right)}}}},{n = \left\lbrack {0,1,\ldots\mspace{14mu},{N - 1}} \right\rbrack}$

At block 354, the full resolution can be decimated to increase desiredsampling rate PPM symbols by a factor of F

$\frac{Q}{N},$where F represents an upsampling factor for BPPM symbols, Q representsthe upsampling rate and N represents the downsampling rate. At block355, the decimation may provide F*Q samples of the output signal. TheF*Q samples can be represented as follows for any of the resamplingmethods mention previously. The BPPM symbols are now oversampledrelative to desired output sampling rate

z(rW) = y(rW)${W = \left\lbrack {\frac{N}{FQ}T} \right\rbrack},{r = \left\lbrack {0,1,\ldots\mspace{14mu},{{FQ} - 1}} \right\rbrack}$

At block 356, a set of random samples can be generated from the F*Qsamples, such that b=Az+v, where |b|<<|z|. At block 357, a randomsampling matrix (e.g., A(r, s), r<<s, s≤FQ) can be applied to the F*Qsamples to generate the set of random samples. In an embodiment, the setof random samples may include a sparse set of samples corresponding tothe F*Q samples. Thus, compressive sensing techniques may be performedon the set of random samples. For example, at block 358, compressivesensing techniques may include sparse recovery using basis pursuitdenoising (BPDN). The compressive sensing may provide an outputrepresented as follows: {circumflex over (z)}(rW), where, r=(0, 1, . . ., FQ−1). At block 360, the output of the compressive sensing may bedecimated by a factor of F (e.g., {circumflex over ({circumflex over(z)})}(rW), where, r=(0, 1, . . . , FQ−1) to generate Q samples.

At block 362, amplitude data for each of the Q samples can bedetermined. For example, the amplitude data can be represented asfollows:

{x̂_(u), t̂_(u)}, u = (0, 1, …  , Q − 1)${{{PPM}({rW})} = {\sum\limits_{u = 0}^{U - 1}{{\hat{x}}_{u}{\delta\left( \left( {{rW} - {\hat{t}}_{u}} \right) \right)}}}},{W = \left\lbrack {\frac{N}{Q}T} \right\rbrack},{{r = \left\lbrack {0,1,\ldots\mspace{14mu},{Q - 1}} \right\rbrack};}$

Referring back to FIG. 3A, at block 316, the coded signal can bereconstructed using the position and amplitude data for each of thesamples. In an embodiment, the position data corresponds to a locationalong an x-axis of at least one Dirac of a sample and the amplitude datacorresponds to a height along a y-axis of at least one Dirac of asample. Thus, each of the Diracs and samples can be plotted on a graphhaving a unit of time representing the x-axis and an amplituderepresenting the y-axis. Graphing the K Diracs provides a reconstructionof the coded signal over one period. In an embodiment, the minimumnumber of samples corresponding to the degrees of freedom of the codedsignal may be used to reconstruct the coded signal over one period.

At block 318, the reconstructed coded signal can be decoded to recoverthe original signal having the set of pulses. A decoder circuit (e.g.,decoder circuit 260 of FIG. 2) can be used to decode the reconstructedsignal by identifying and removing the error correction bits added tothe original BPPM signal at step 3002 of method 300. In an embodiment,the decoding rate corresponds to the number of BPPM symbols per channelusage interval of the respective signal to be decoded.

A variety of different decoding techniques may be used to decode thereconstructed coded signal. For example, the reconstructed coded signalmay be decoded using, but not limited to, at least one of Reed-Solomon,Peterson-Gorenstein-Zierler (PGZ) techniques, Forney techniques orBerlekamp-Massey techniques.

In some embodiments, the set of pulses may have been mapped to R-Scodewords. The decoder circuit can to use the mapping to identify theset of pulses in the coded signal. The decoder circuit can remove theerror correction bits from the coded signal to produce the originalsignal having the set of pulses (e.g., signal generated at step 304 ofmethod 300). In some embodiments, the set of pulses can be convertedback into the original data symbol to recover the original set of one ormore bits.

In some embodiments, soft PPM symbol block decoding may be performed todecode the reconstructed coded signal. Soft PPM symbol block decodingmay include one of or a combination of joint PPM sample sparse recoverytechniques, dynamic programming block decoding techniques and R-Sdecoding techniques. In some embodiments, symbol-by-symbol recovery forsparse signal recovery may include thresholding and/or peak finding ofthe corresponding sparse vector to determine peaks. Block decoding ofeach of the symbols in a PPM sequence over each R-S codeword can avoidthe thresholding and/or peak finding for each symbol by using a dynamicprogramming algorithm (DPA). In some embodiment, a signal to noise ratio(SNR) gain can be achieved by coherently integrating over thesymbol-by-symbol soft-decisions made using sparse recovery.

For example and now referring to FIG. 3F, a method 370 for performingsoft PPM symbol block decoding is provided. Method 370 begins at block372 by performing joint PPM sample sparse recovery on the samples fromthe FRI recovery and compressive sensing techniques discussed above. Thejoint PPM sample sparse recovery may include at least one of thefollowing: L-1 norm, basis pursuit denoising (BPDN) techniques, radarimaging (Potter)—relaxation techniques (p<1 or p>1) or matching pursuit(MP) techniques.

The output of the joint PPM sample sparse recovery may generate softjointly decoded PPM samples (or BPPM samples). At block 374, dynamicprogramming block decoding may be performed on the soft jointly decodedPPM samples to generate hard jointly decoded PPM samples (or BPPMsamples).

At block 376, R-S decoding techniques may be performed on the hardjointly decoded PPM samples to decode each of the PPM samples (or BPPMsamples). For example, for a R-S, GF(16), each PPM codeword sample has16 positions. Each of the sparse vector symbols can take a position in atrellis at each time epoch.

Referring back to FIG. 3A, a trellis as used herein refers to aconnected graph with nodes and edges. Each set of nodes at a particulartime (k) are possible states of the system. For example, each state canbe a time position and measurement associated with that time position.Each edge can represent a transition of a state at time (k) to anotherpossible state at time (k+1). Each node at a particular state may have acost associated with it. In some embodiments, there is a cost associatedwith a transition between states. A path through the trellis is asequence of edges through the trellis from the initial state to a finalstate, for example, (N). Each path through the trellis has a cumulativecost and minimizing that cost defines an “optimal” sequence of codewordsymbols through the trellis. Each recovered sparse vector symbol canhave 16 positions for GF(16) R-S codewords, which may include noisepositions along with at least one signal of interest.

Thus, the sequence of symbols can form a path through the trellis from afirst position to the next position for each path (i.e., length (N) ofthe respective codeword). In an embodiment, each trellis node can befully connected to each successive nodes in the trellis. The DPA usesforward and/backward processing to determine an optimal path through thetrellis.

In some embodiments, to verify an accuracy of the optimal path, anerasure symbol detection can be performed by analyzing an entropy ofeach PPM normalized codeword symbol (e.g., H(x)=−Σ_(i=1)^(X)p(x_(i))log₂ p(x_(i))), where p(x_(i)) is the probability of a statein the trellis at some time (k). A codeword can be associated with eachset of states at time (k). log₂ p(x_(i)) is the (logarithm-base 2). Inan embodiment, a large entropy may imply that the PPM symbol codewordhas a large uncertainty with respect to the actual PPM position.Alternatively, a small entropy may imply that the PPM codeword symbolhas a single spike (i.e., only one PPM position is in the codewordsymbol).

Forward processing may include a measurement for each set of nodes ateach time is the sparse vector reconstructed using sparse recovery.Thus, a metric can be computed at each node which can correspond to abest match of the measurement to (+1) since this the single possibilityfor a sparse symbol for a signal present. Otherwise, each symbol vectorcan be zero.

For each trellis node (i) at time t_(k), the cost metric d_(i)(t_(k))can be computed using the following equation:

${{d_{i}\left( t_{k} \right)} = {\frac{1}{\sqrt{2\;\pi\;\sigma}}{\max\left\lbrack {\exp\left( {\frac{1}{2\;\sigma^{2}}\left( {{{z_{i}\left( t_{k} \right)} - 1}}^{2} \right)} \right)} \right\rbrack}}},{\approx {\frac{1}{\sqrt{2\;\pi\;\sigma}}{\exp\left\lbrack {\min\left( {\frac{1}{2\;\sigma^{2}}\left\{ {{{z_{i}\left( t_{k} \right)} - 1}}^{2} \right\}} \right)} \right\rbrack}}}$

where z_(i)(t_(k)) is the soft decoded value at a PPM position in thePPM symbol. In general, for multiple hypotheses for possible symbolvalues, “max” (i.e. maximum) computes the maximum for the set ofhypotheses. σ is the standard deviation for a Gaussian random viable. Inan embodiment, the above equation may represent a turbo-codeapproximation using “min” (i.e. minimum). For example, in someembodiments, there may be only one hypothesis. If the measured signal ata position that is close to (+1), then the cost is small. When themeasured position is close to “zero”, then the cost is higher.

A node can be identified as a set with two parameters,N_(i)(t_(k))={d_(i)(t_(k)), M_(i)}, where M_(i) is (+1), assuming eachPPM symbol can be transmitted as a pulse of amplitude (+1).

Thus, for a next or subsequent time epoch, a cumulative score can becomputed for each node at time based on each of the previous nodes. Acumulative path to each current node can be determined, for example, tokeep track of a possible optimal path to the current node. Thecumulative path cost C_(i)(t_(k)) can be defined as follows:C _(i)(t _(k))=max_(j) [C _(j)(t _(k-1))+d _(i)(t _(k))], j=1, . . .,16, for each i=1, . . . ,16, and C _(j)(t ⁻¹)=0 for a GF(16) R-S code

In an embodiment, the cumulative path can be defined to the current nodewith N_(i)(t_(k-1)), where N_(j)(T_(k-1)) corresponds to a node (J) thatprovides a max score. Furthermore, the cost at each node at time (k) isthe cost of the node from the previous time computed by:P _(i)(t _(k))=EDGE(N _(i)(t _(k-1)),N _(j)(t _(k)))UP _(j)(t _(k-1))where (J) is the node from the previous time (k−1), that has thesmallest cost C_(j)(t_(k-1)). “U” is the union operator from algebra.

where P_(i)(t₁)=λ, corresponding to a null' edge at the first timeepoch. In some embodiments, the N_(j,I)(t_(k-1)) can be expurgated fromthe trellis such that the search for a second path does not include thenode that is already part of the first path or another path. At eachtime epoch, each soft measurement can be used to update the cumulativescores and the cumulative paths. At the last time epoch, the cumulativescores and the cumulative path can be defined for the last set of nodes.

Backward processing is used determine a separate path through thetrellis. For example, the cumulative scores at the last symbols can beranked in descending order. The maximum score can define the end nodesfor the optimal path. Then a backward trace can be generated to definethe optimal paths determined using forward processing. The hypothesisassociated with each path node to get to the final node can berepresented as follows:[C _(m1,I)(t _(N))>C _(m2,I)(t _(N))> . . . ]=sort[C _(i,I)(t _(N))],for each i=1, . . . ,16

where N represents the last time epoch and G_(m1,I)(t_(N)) representstop cumulative scores. In an embodiment, the nodes corresponding to thetop cumulative scores can be used for backtracking to define the optimalpaths through the trellis. For example, a sequence of (+1) along eachoptimal path backward path can define the optimal sequence of symbols.In some embodiments, thresholding is not needed the last set of nodes inthe trellis to determine at least the top two paths.

Erasure detection can be performed along an identified optimal path toverify the accuracy of the optimal path. For example, after determine atleast one optimal path (e.g., path-1) for one or more top cumulativescores form forward processing, for any set of trellis nodes at eachtime epoch, an entropy calculation can be performed to determine if PPMsymbols is an erasure. The erasure detection can be represented asfollows:

${H\left( {X\left( t_{k} \right)} \right)} = {- {\sum\limits_{i = 1}^{16}{{p\left( {x_{i}\left( t_{k} \right)} \right)}{\log\left( {p\left( {x_{i}\left( t_{k} \right)} \right)} \right)}}}}$H(X(t_(k))) > T, X(t_(k)) = δ, else  X(t_(k)) = +1

where X(t_(k)) represents the decoded PPM symbol random value, Trepresents a designated threshold and δ represents an erasure symbolvalue.

Referring now to FIG. 4, a computer 400 includes a processor 402, avolatile memory 404, a non-volatile memory 406 (e.g., hard disk), agraphical user interface (GUI) 408 (e.g., a mouse, a keyboard, adisplay, for example) and a computer disk 420. The non-volatile memory406 stores computer instructions 412, an operating system 416 and data418. In an embodiment, the data 418 may include data collectedcorresponding to signals transmitted and/or received by an OAMtransceiver system. The data may include binomial pulse positionmodulation information and encoding information. For example, in someembodiments, the data may include encoding techniques used to encode theBPPM pulses, the data symbols used to modulate the set of one or morebits, and/or properties of a free-space channel the signal wastransmitted over. In embodiment, the data may degrees of freedom, rateof innovation, and/or a number of Diracs corresponding to the signal.

In some embodiments, non-volatile memory 406 may include one or morelook-up tables for storing and organizing captured data corresponding tosignals transmitted and/or received by an OAM transceiver system, aswell as any tables or matrices generated using the samples of thecaptured data. In one example, the computer instructions 412 areexecuted by the processor 402 out of volatile memory 404 to perform allor part of the method (or process) 300 of FIGS. 3-3A, method 320 of FIG.3B, methods 330 a, 330 b (or process) of FIG. 3C, method 340 (orprocess) of FIG. 3D, method 350 (or process) of FIG. 3E and/or method370 (or process) of FIG. 3F.

In an embodiment, computer 400 may be the same as or substantiallysimilar to each of the components of OAM transceiver system 100 of FIG.1, such as modulators 106 a-106 n and demodulators 120 a-120 n. Computer400 may be the same as or substantially similar to each of thecomponents of OAM transceiver system 200 of FIG. 2, such as BPPM circuit210, encoding circuit 220, filtering circuit 240, reconstruction circuit250, compressive sensing circuit 255 and decoding circuit 260. Computer400 may perform all of the same functions and be configured to receiveand generate the same data as each of modulators 106 a-106 n anddemodulators 120 a-120 n of FIG. 1, BPPM circuit 210, encoding circuit220, filtering circuit 240, reconstruction circuit 250, compressivesensing circuit 255 and decoding circuit 260 of FIG. 2. For example,computer 400 may be configured to generate, transmit, receive, sample,reconstruct and decode coded BPPM signals for FSO communications.

Methods 300, 320, 330 a, 330 b, 340, 350 and 370 are not limited to usewith the hardware and software of FIG. 4; they may find applicability inany computing or processing environment and with any type of machine orset of machines that is capable of running a computer program. Methods300, 320, 330 a, 330 b, 340, 350 and 370 may be implemented in hardware,software, or a combination of the two. Methods 300, 320, 330 a, 330 b,340, 350 and 370 may be implemented in computer programs executed onprogrammable computers/machines that each includes a processor, astorage medium or other article of manufacture that is readable by theprocessor (including volatile and non-volatile memory and/or storageelements), at least one input device, and one or more output devices.Program code may be applied to data entered using an input device toperform methods 300, 320, 330 a, 330 b, 340, 350 and 370 and to generateoutput information.

The system may be implemented, at least in part, via a computer programproduct, (e.g., in a machine-readable storage device), for execution by,or to control the operation of, data processing apparatus (e.g., aprogrammable processor, a computer, or multiple computers)). Each suchprogram may be implemented in a high level procedural or object-orientedprogramming language to communicate with a computer system. However, theprograms may be implemented in assembly or machine language. Thelanguage may be a compiled or an interpreted language and it may bedeployed in any form, including as a stand-alone program or as a module,component, subroutine, or other unit suitable for use in a computingenvironment. Alternatively, the system may be implemented, at least inpart, as firmware.

A computer program may be deployed to be executed on one computer or onmultiple computers at one site or distributed across multiple sites andinterconnected by a communication network. A computer program may bestored on a storage medium or device (e.g., CD-ROM, hard disk, ormagnetic diskette) that is readable by a general or special purposeprogrammable computer for configuring and operating the computer whenthe storage medium or device is read by the computer to perform methods300, 320, 330 a, 330 b, 340, 350 and 370. Methods 300, 320, 330 a, 330b, 340, 350 and 370 may also be implemented as a machine-readablestorage medium, configured with a computer program, where uponexecution, instructions in the computer program cause the computer tooperate in accordance with methods 300, 320, 330 a, 330 b, 340, 350 and370.

Methods 300, 320, 330 a, 330 b, 340, 350 and 370 may be performed by oneor more programmable processors executing one or more computer programsto perform the functions of the system. All or part of the system may beimplemented as, special purpose logic circuitry (e.g., an FPGA (fieldprogrammable gate array) and/or an ASIC (application-specific integratedcircuit)).

A number of embodiments of the disclosure have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the disclosure.Elements of different embodiments described herein may be combined toform other embodiments not specifically set forth above. Otherembodiments not specifically described herein are also within the scopeof the following claims.

What is claimed:
 1. A method for generating a coded signal, the methodcomprising: converting one or more bits of information into a datasymbol for transmission over a free-space optical channel; modulatingthe data symbol into a set of pulses; generating a signal having aplurality of pulse positions, wherein: each pulse of the set of pulsesis positioned in a single pulse position of the plurality of pulsepositions, the set of pulses occupy less than 50% of a total number ofthe plurality of pulse positions, and each pulse position is randomlyselected or based on a position of another different pulse in the set ofpulses; generating one or more codewords based on a number of errorcorrection bits and the signal having the set of pulses; and forming acoded signal using the one or more codewords to represent the signalhaving the set of pulses for transmission over the free-space opticalchannel.
 2. The method of claim 1, further comprising determining thenumber of error correction bits based on a number of data bits in thesignal and an error correction threshold.
 3. The method of claim 1,further comprising applying a sampling kernel to the coded signal togenerate a filtered signal and sampling the filtered signal to generatesamples of the filtered signal.
 4. The method of claim 3, furthercomprising determining position data and amplitude data for each of thesamples of the filtered signal.
 5. The method of claim 4, furthercomprising reconstructing the coded signal using the position andamplitude data for each of the samples.
 6. The method of claim 1,further comprising decoding the coded signal at a sample rate equal to anumber of pulses per predetermined time interval of the coded signal. 7.A method for reconstructing a signal, the method comprising: applying asampling kernel to a coded signal received from a free-space opticalchannel to generate a filtered signal; sampling the filtered signal togenerate samples of the filtered signal over a predetermined timeinterval; determining position and amplitude data for each of thesamples of the filtered signal over the predetermined time interval;reconstructing the coded signal using the position and amplitude datafor each of the samples; and decoding the reconstructed coded signal togenerate a signal having a plurality of pulse positions, wherein: eachpulse of the set of pulses is positioned in a single pulse position ofthe plurality of pulse positions, the set of pulses occupy less than 50%of a total number of the plurality of pulse positions, and each pulseposition is randomly selected or based on a position of anotherdifferent pulse in the set of pulses.
 8. The method of claim 7, whereinthe sampling kernel has a bandwidth corresponding to a rate ofinnovation of the coded signal.
 9. The method of claim 7, furthercomprising generating a set of Diracs based on one or more derivativesof an equation representing the samples of the coded signal.
 10. Themethod of claim 9, further comprising determining the position data andthe amplitude data for each Dirac in the set of Diracs.
 11. The methodof claim 10, further comprising reconstructing the coded signal usingthe position data and the amplitude data for each Dirac corresponding tothe samples in the predetermined time interval.
 12. The method of claim7, further comprising decoding the coded signal at a sampling rate equalto a number of pulses per channel usage interval of the coded signal.13. A system for generating and reconstructing a coded signal, thesystem comprising: a pulse position modulation circuit configured toconvert a data symbol into a set of pulses, the data symbolcorresponding to one or more bits, and generate a signal having aplurality of pulse positions, wherein: each pulse of the set of pulsesis positioned in a single pulse position of the plurality of pulsepositions, the set of pulses occupy less than 50% of a total number ofthe plurality of pulse positions, and each pulse position is randomlyselected or based on a position of another different pulse in the set ofpulses; an encoding circuit configured to encode the signal bygenerating one or more codewords based on a predetermined number oferror correction bits, wherein the one or more codewords to representthe signal having the set of pulses; a filtering circuit configured toreceive the coded signal, apply a sampling kernel to the received codedsignal to generate a filtered signal, and sample the filtered signal togenerate a set of samples of the filtered signal over a predeterminedtime interval; and a decoding circuit configured to decode the samplesof the filtered signal to recover the signal having the set of pulsesover the channel usage interval.
 14. The system of claim 13, furthercomprising a reconstruction module configured to determine position andamplitude data for each of the samples of the filtered signal.
 15. Thesystem of claim 14, wherein the reconstruction module is configured toreconstruct the coded signal using the position and amplitude data foreach of the samples.
 16. The system of claim 13, wherein the decodercircuit is configured to sample the coded signal at a rate equal to anumber of pulses per the channel usage interval of the coded signal.